SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[spAsignarNroDeOrden] 

AS
SET NOCOUNT ON
DECLARE @Inscripcion INT
DECLARE @Agente INT
DECLARE @Localidad VARCHAR(100)
DECLARE @LocalidadT VARCHAR(100)
SET @LocalidadT = 'Nothing'
DECLARE @CargoGenerico VARCHAR(100)
DECLARE @CargoGenericoT VARCHAR(100)
SET @CargoGenericoT = 'Nothing'
DECLARE @AsignaturaGenerica VARCHAR(100)
DECLARE @AsignaturaGenericaT VARCHAR(100)
SET @AsignaturaGenericaT = 'Nothing'
DECLARE @CategoriaTitulo INT
DECLARE @Puntaje FLOAT
DECLARE @Promedio FLOAT
DECLARE @Especifico VARCHAR(1)
DECLARE @Counter INT
DECLARE @Nivel INT
DECLARE @NivelT INT
DECLARE @Ciclo INT
DECLARE @CicloT INT
DECLARE @Convocatoria INT
DECLARE @ConvocatoriaT INT
SET @NivelT = 0
SET @CicloT = 0
SET @ConvocatoriaT  = 0
SET @Counter = 0
DECLARE @error INT
SET @error = 0

BEGIN TRANSACTION

DECLARE X CURSOR forward_only FOR

--SELECT * FROM vw_OrdenDeMeritoSinOrden
--ORDER BY Convocatoria, Nivel, Ciclo, Localidad, CG, AG, CategoriaTitulo, Puntaje DESC, Promedio DESC

SELECT * FROM vw_OrdenDeMeritoSinOrden
ORDER BY Convocatoria, Nivel, Ciclo, Localidad, CG, AG, CategoriadeTitulo DESC, Puntaje DESC, Promedio DESC


OPEN X

FETCH NEXT FROM X INTO @Convocatoria, @Nivel, @Ciclo, @Inscripcion, @Agente, @Localidad, @CargoGenerico, @AsignaturaGenerica, @CategoriaTitulo, @Puntaje, @Promedio, @Especifico

WHILE @@FETCH_STATUS = 0 BEGIN

	SELECT @ConvocatoriaT = @Convocatoria, @NivelT = @Nivel, @CicloT = @Ciclo, @LocalidadT = @Localidad, @CargoGenericoT = @CargoGenerico, @AsignaturaGenericaT = @AsignaturaGenerica 
	
	WHILE @Convocatoria = @ConvocatoriaT AND @Nivel = @NivelT AND @Ciclo = @CicloT AND @Localidad = @LocalidadT AND @CargoGenerico = @CargoGenericoT AND @AsignaturaGenerica = @AsignaturaGenericaT AND @@FETCH_STATUS = 0 BEGIN
	
		SET @Counter = @Counter + 1

		UPDATE tb_InscripcionesConvocatorias SET NroDeOrden = @Counter, Puntaje = @Puntaje, CategoriadeTitulo = @CategoriaTitulo, PromedioTitulo=@Promedio, TituloEspecifico = @Especifico WHERE IdInscripcionConvocatoria = @Inscripcion
		
		IF @@error <> 0 BEGIN
			SET @error = @@error
			GOTO Salir
		END

		FETCH NEXT FROM X INTO @Convocatoria, @Nivel, @Ciclo, @Inscripcion, @Agente, @Localidad, @CargoGenerico, @AsignaturaGenerica, @CategoriaTitulo, @Puntaje, @Promedio, @Especifico

	END
	SET @Counter = 0

END

CLOSE X
DEALLOCATE X


Salir:
IF @error <> 0 BEGIN
	ROLLBACK TRANSACTION
END
ELSE BEGIN
	COMMIT TRANSACTION
END
GO
